![]() ![]() |
![]() ![]() ![]() |
![]() ![]() ![]() ![]() |
Comprendere come avviene lo sviluppo dei sistemi basati su computer e conoscere le diverse fasi di sviluppo del software: analisi, progettazione, programmazione e test
Oggi si dice che Bill Gates sia l'uomo più ricco del mondo, mentre IBM (un tempo quasi monopolizzatrice del settore computer) è stata notevolmente ridimensionata ed ha addirittura abbandonato certi settori di produzione dei computer (vedi i personal) per dedicarsi anch'essa a consulenze ed al software.
Oggi infatti, con decine o centinaia di milioni di computer funzionanti e che crescono continuamente di numero ad un ritmo impressionante, la produzione di nuovo software è una delle attività che sta impiegando più addetti.
La produzione dell'hardware è affidata ormai a fabbriche altamente automatizzate.
Un programma fra il momento in cui qualcuno ha la prima idea ed il momento in cui viene distribuito (rilasciato) agli utenti, passa attraverso diverse fasi di sviluppo:
Analisi - Inizia usualmente con uno "studio di fattibilità" in cui si esaminano le esigenze informative che hanno determinato lo studio. Si arriva poi alla individuazione di una o più soluzioni accettabili relative alle applicazioni ed alle tecnologie, per fornire gli elementi di valutazione necessari per prendere una decisione sulla realizzazione operativa del progetto. E' qui che vengono analizzati costi e benefici attesi, nonchè i rischi connessi alla realizzazione del progetto. La fase di analisi è sicuramente la più delicata per riuscire a capire che cosa si desidera ottenere esattamente.
Progettazione - Una volta stabilito esattamente che cosa si vuole, occorre individuare come farlo. In questa fase, che non è ancora quella di vera e propria realizzazione del programma, se ne definisce però nei dettagli l'architettura. Il problema viene scomposto in diversi moduli, articolati in modo da realizzare un progetto flessibile, che consenta facilmente la manutenzioni e le eventuali implementazioni.
Realizzazione o Implementazione - Questa è la vera fase di creazione del programma: tutto quanto è stato progettato nelle fasi precedenti viene tradotto in righe di codice e vengono eseguiti i primi test tecnici.
Test e integrazione - In questa fase dopo i primi test "pezzo per pezzo" eseguiti subito dopo la codifica, vengono effettuati test sistematici di ogni modulo. Dopo la correzione di eventuali malfunzionamenti, i diversi moduli vengono integrati fra loro fino a creare una procedura complessa.
Revisione - Ora è possibile dare una valutazione del grado di perfezionamento delle diverse funzioni previste e, quindi, si può intervenire per risolvere eventuali problemi emersi dalle prove precedenti.
Manutenzione - Dopo il rilascio del prodotto, il numero di utenti è ovviamente assai superiore al numero delle persone che hanno contribuito ai test; l'uso continuato del prodotto da parte di molti utenti fa inevitabilmente emergere piccoli o grandi problemi che costringono (per tutta la vita del prodotto) ad una continua manutenzione, che talora può portare anche a migliorie nel funzionamento o all'inserimento di nuove funzionalità.
Nel caso, ormai sempre più raro, in cui non si trovi in commercio un prodotto atto a soddisfare adeguatamente le proprie esigenze, un'Azienda può anche intraprendere, almeno per certe procedure, la strada della realizzazione autonoma.
In questo caso, nel ciclo di sviluppo che porta alla progettazione ed alla realizzazione del software più adatto alle sue esigenze, l'Azienda farà intervenire diverse figure:
Utente - E' la persona, o l'ufficio, dalle cui esigenze non soddisfatte parte la richiesta. Egli è colui che sa esattamente (o almeno dovrebbe sapere) che cosa gli occorre.
Analista - E' un informatico di buona esperienza che dovrebbe anche conoscere le problematiche aziendali. Il suo compito, infatti, è quello di comprendere a fondo i problemi dell'utente, di analizzarli dal punto di vista informatico e di immaginare un sistema per risolverli.
Programmatore - E' la persona che, a partire dalle specifiche tecniche ricevute dall'analista, crea un programma applicativo utilizzando un determinato linguaggio di programmazione. Egli genera righe di programma (i cosiddetti "statement") in "codice sorgente" che è un linguaggio simbolico comprensibile dai programmatori. Da esso, mediante la fase di "compilazione e assemblaggio", nasce poi il programma "eseguibile" che è invece in "codice macchina".
Alla fine di queste nozioni sullo sviluppo del software, desidero anche definirti alcuni termini che avrai certamente già letto più volte: Shareware, Freeware ed Open Source.
Oltre al numerosissimo software a pagamento, esistono fortunatamente altre forme di distribuzione del software.
Molti siti Internet e molte riviste di informatica consentono di utilizzare software Shareware e software Freeware.
Per software Freeware si intende un applicativo di dominio pubblico, che può essere utilizzato, duplicato e diffuso senza dover pagare nulla.
Per Shareware si intende invece software per il quale il detentore dei diritti ha concesso un periodo di utilizzo gratuito (normalmente per valutare la rispondenza del software alle proprie esigenze e spesso con limitazioni nelle funzioni) al termine del quale l'utente è tenuto a cancellarlo oppure a corrispondere al detentore dei diritti una certa cifra, che spesso dà diritto a ricevere una copia integrale ed eventuali aggiornamenti.
Esiste anche il software cosiddetto Open Source. Si tratta di software gratuito per il quale vengono messi a disposizione anche i programmi "sorgente", in modo da consentire eventuali miglioramenti che verranno poi resi disponibili con le stesse modalità.
L'esempio, forse più noto di questo tipo, è rappresentato dal Sistema Operativo Linux e dal molto software applicativo capace di girare sotto Linux.